In [1]:
from sklearn import datasets
from sklearn.naive_bayes import BernoulliNB, MultinomialNB, GaussianNB
from sklearn.model_selection import cross_val_score
import numpy as np
In [2]:
digits = datasets.load_digits()
breast = datasets.load_breast_cancer()
In [3]:
X_digits = digits.data
y_digits = digits.target
X_breast = breast.data
y_breast = breast.target
In [4]:
Bern_clf = BernoulliNB()
Mult_clf = MultinomialNB()
Gauss_clf = GaussianNB()
In [7]:
Bern_val_score_digits = cross_val_score(Bern_clf,X_digits,y_digits).mean()
Mult_val_score_digits = cross_val_score(Mult_clf,X_digits,y_digits).mean()
Gauss_val_score_digits = cross_val_score(Gauss_clf,X_digits,y_digits).mean()
Bern_val_score_breast = cross_val_score(Bern_clf,X_breast,y_breast).mean()
Mult_val_score_breast = cross_val_score(Mult_clf,X_breast,y_breast).mean()
Gauss_val_score_breast = cross_val_score(Gauss_clf,X_breast,y_breast).mean()
In [9]:
print 'BernoulliNB, digits = ', Bern_val_score_digits
print 'MultinomialNB, digits = ', Mult_val_score_digits
print 'GaussianNB, digits = ', Gauss_val_score_digits
print
print 'BernoulliNB, breast = ', Bern_val_score_breast
print 'MultinomialNB, breast = ', Mult_val_score_breast
print 'GaussianNB, breast = ', Gauss_val_score_breast
Вопрос 1
Каким получилось максимальное качество классификации на датасете breast_cancer?
Вопрос 2
Каким получилось максимальное качество классификации на датасете digits?
Вопрос 3
Выберите верные утверждения и запишите их номера через пробел (в порядке возрастания номера):
1) На вещественных признаках лучше всего сработал наивный байесовский классификатор с распределением Бернулли
2) На вещественных признаках лучше всего сработал наивный байесовский классификатор с мультиномиальным распределением
3) Мультиномиальное распределение лучше показало себя на выборке с целыми неотрицательными значениями признаков
4) На вещественных признаках лучше всего сработало нормальное распределение
In [10]:
ans1 = '0.936749280609'
ans2 = '0.870877148974'
ans3 = '3 4'
def F_write(ans,file_name):
with open(file_name, 'w') as file_out:
file_out.write(str(ans))
F_write(ans1,'naive_bayes_ans_1')
F_write(ans2,'naive_bayes_ans_2')
F_write(ans3,'naive_bayes_ans_3')